package net.teamclerks.rpgf.character.controller;

import java.util.List;

import net.teamclerks.rpgf.script.director.Director;
import net.teamclerks.rpgf.character.Character;

public class CharacterController
{
  /// CONTROL DATA ///
  /**
   * Reference to system's Director.
   */
  protected Director director;
  /**
   * The list of Characters in this party.
   */
  protected List<Character> partyMembers;
  /**
   * The list of opponent Characters in a battle.
   */
  protected List<Character> opponents;
  
  /// DENY CONSTRUCTOR ///
  private CharacterController(){}
  
  /// PUBLIC CONTROLLER ///
  /**
   * Public constructor.
   */
  public CharacterController(Director director)
  {
    this();
    this.director = director;
    this.director.setCharacterController(this);
  }

  /// PUBLIC FINAL METHODS ///
  /**
   * @return the partyMembers
   */
  public final List<Character> getPartyMembers()
  {
    return partyMembers;
  }
  /**
   * @param partyMembers the partyMembers to set
   */
  public final void setPartyMembers(List<Character> partyMembers)
  {
    this.partyMembers = partyMembers;
  }
  /**
   * @return the opponents
   */
  public final List<Character> getOpponents()
  {
    return opponents;
  }
  /**
   * @param opponents the opponents to set
   */
  public final void setOpponents(List<Character> opponents)
  {
    this.opponents = opponents;
  }
}
